
[dbo].[sp_asi_ClientUpgrade]
CREATE PROCEDURE sp_asi_ClientUpgrade AS
DECLARE @machinename varchar(255),
@MACaddress varchar(20),
@installerpath varchar(255),
@clientomnispath varchar(255),
@clientimispath varchar(255),
@usermessage varchar(2048),
@cmd varchar(2048),
@tmpnum int
SET @clientomnispath = ''
SET @clientimispath =''
SET @installerpath = ''
set @tmpnum = (select count(*)
FROM System_Params
WHERE ParameterName = 'System_Control.InstallerPath')
if @tmpnum = 0
goto endit
SET @MACaddress = (SELECT lower(net_address)
FROM master.dbo.sysprocesses
WHERE spid = @@spid)
SET @MACaddress = STUFF(@MACaddress, 11, 0, '-')
SET @MACaddress = STUFF(@MACaddress, 9, 0, '-')
SET @MACaddress = STUFF(@MACaddress, 7, 0, '-')
SET @MACaddress = STUFF(@MACaddress, 5, 0, '-')
SET @MACaddress = STUFF(@MACaddress, 3, 0, '-')
drop table #Macaddresses
create table #Macaddresses (CMD_OUTPUT varchar(300) null)
insert into #Macaddresses exec master.dbo.xp_cmdshell 'arp -A'
SET @machinename = (SELECT ltrim(rtrim(substring(CMD_OUTPUT,1,20)))
FROM #Macaddresses
WHERE CMD_OUTPUT like '%' + @MACaddress + '%')
SET @installerpath = (SELECT ShortValue
FROM System_Params
WHERE ParameterName = 'System_Control.InstallerPath')
SET @clientomnispath = (SELECT rtrim(ShortValue)
FROM System_Params
WHERE ParameterName = 'System_Control.ClientOmnisPath')
SET @clientimispath = (SELECT rtrim(ShortValue)
FROM System_Params
WHERE ParameterName = 'System_Control.ClientiMISPath')
SET @usermessage = (SELECT rtrim(ShortValue)
FROM System_Params
WHERE ParameterName = 'System_Control.UserUpgradeMsg')
if datalength (@usermessage) = 0 or @usermessage IS NULL
set @usermessage = 'Your system is beginning iMIS upgrade procedures. Exit iMIS and any running applications. When prompted, follow the instructions to upgrade your current installation.'
IF rtrim(@installerpath) = '' or datalength (@installerpath) = 0
GOTO endit
IF @clientomnispath IS NULL
SET @clientomnispath = ' '
IF @clientimispath IS NULL
SET @clientimispath = ' '
IF isnull(@clientomnispath,'') <> ''
SET @clientomnispath = ' /o ' + @clientomnispath
IF isnull(@clientimispath,'') <> ''
SET @clientimispath = ' /i ' + @clientimispath
IF right(@installerpath,1) <> '\'
SET @installerpath = @installerpath + '\'
SET @cmd = 'net send ' + rtrim(@machinename) + ' "' + rtrim(@usermessage) + '"'
EXEC master.dbo.xp_cmdshell @cmd
SET @cmd = 'xCmd \\' + rtrim(@machinename) + ' /C /NOWAIT ' + rtrim(@installerpath) + 'Setup.exe /z"/u' + rtrim(@clientomnispath) + rtrim(@clientimispath) + '"'
EXEC master.dbo.xp_cmdshell @cmd
endit:
RETURN
GO
GRANT EXECUTE ON [dbo].[sp_asi_ClientUpgrade] TO [IMIS]
GO